// pages/detail/detail.js
import { getGoods, getComments, getCartData, addCartsData,modifyCartsData } from '../../utils/api';
import checkAuth from '../../utils/checkAuth'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodId: 0,
    goodObj: {},
    headerTabTitle: ["商品详情", "用户评价"],
    // 内容导航栏的默认索引
    currentIndex: 0,
    // 底部导航栏的信息
    footerTabTitle: ["跳转购物车", "加入购物车", "立即购买"],
    // 评论数据
    commentList: [],
    // 总评论数
    totalComment: 0

  },
  // comments评论页数
  commentsPageIndex: 1,
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 接收页面传递过来的参数
    // console.log(options);
    const { goodid, title } = options;
    // 设置顶部标题
    wx.setNavigationBarTitle({
      title
    })
    // 保存商品id
    this.setData({
      goodId: goodid
    });
    //获取商品数据
    getGoods(1, { id: goodid }).then(res => {
      this.setData({
        goodObj: res.data
      })
      console.log(res.data);
    }).catch(err => {
      console.log(err);
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  // 点击内容切换对应的内容并高亮
  handleChangeContent(e) {
    const { currentTarget: { dataset: { currentindex } } } = e
    console.log(currentindex);
    this.setData({
      currentIndex: currentindex
    })
    // 点击用户评价进行获取评价数据
    if (currentindex === 1) {
      // 判断totalComment（接口总评论数）与当前存储的评论列表长度是否不一致，或者是否处于第一次打开用户评价，如果都满足，则请求接口返回数据反之不做任何处理
      if (Number(this.data.totalComment) !== this.data.commentList.length || (this.data.commentList.length === 0 && this.commentsPageIndex === 1)) {
        getComments(this.commentsPageIndex).then(res => {
          // 修改当前评论页数
          this.commentsPageIndex++;
          // 存储接口总数居，以及返回的数据
          this.setData({
            commentList: res.data,
            totalComment: res.header["X-Total-Count"]
          })
          console.log(res.data)
        }).catch(err => {
          console.log(err)
        })
      }

    }
  },

  //全屏显示图片
  fullScreenToPic(e) {
    const { target: { dataset: { imgurl } } } = e
    console.log(imgurl);
    const fullUrl = 'http://localhost:5001' + imgurl;
    wx.previewImage({
      urls: this.data.goodObj.slides.map(item => 'http://localhost:5001' + item),
      current: fullUrl
    })
  },

  // 底部选项卡 点击事件 根据index处理不同逻辑
  handleClick(e) {
    const { currentTarget: { dataset: { buttontype } } } = e
    // console.log(buttontype);
    // 进入购物车页面前，需要身份验证
    // 1、先判断本地有没有存储手机信息，有则直接加入
    // 2、没有手机信息，判断是否有token信息，如果有，引导到手机绑定
    // 3、如果没有token，引导用户授权页面
    switch (buttontype) {
      case 0:
        checkAuth(() => {
          wx.switchTab({
            url: '/pages/shoppingCar/shoppingCar',
          })
        })
        console.log('点击了跳转购物车')
        break;
      case 1:
        checkAuth(() => {
          // 获取用户名，电话号，以及商品id
          const userName = wx.getStorageSync('token').nickName;
          const tel = wx.getStorageSync('tel');
          console.log(userName, tel, this.data.gooodId)
          // 通过接口，查询用户是否买过这商品，买过则数量加1，没买过则添加新数据
          getCartData({
            username: userName,
            tel,
            goodId: this.data.goodId
          }).then(res => {
            console.log(res.data);
            
            if (res.data.length === 0) {
              return addCartsData({
                username: userName,
                tel,
                goodId: this.data.goodId,
                number: 1,
                checked: false,
              })
            }
            else{
              // 记录购物车的某个商品的个数
              let goodNum=res.data[0].number;
              return modifyCartsData({
                ...res.data[0],
                number:goodNum+1
              })
            }
          }).then(res=>{
            console.log(res.data);
            wx.showToast({
              title: '已成功加入购物车',
            })
          }).catch(err => {
            console.log(err);
          })
        })
        break;
      case 2:
        console.log('点击了立即购买')
        break;
      default:
        break;
    }
  }
})